package com.ref.demo7;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Scanner;

/**
 * @ClassName EmailTest
 * @Description 输入一个合法的Email地址，截取其帐户名。
 *     提示：使用字符串对象:substring()、indexOf()访求实现
 *     要求：使用反射实现
 * @Author Kx
 * @Date 2025/3/17 19:10
 * @Version 1.0
 */
public class EmailTest {
    public static void main(String[] args) {
        // 创建键盘输入对象
        Scanner scanner = new Scanner(System.in);

        try {
            // 1. 获取 Email 的class 对象
            Class<?> aClass = Class.forName("com.ref.demo7.Email");

            // 2. 获取 Email 类中的 checkEmail 方法对象
            Method method = aClass.getMethod("checkEmail", String.class);

            // 3. 实例化 Email 对象
            Object object = aClass.newInstance();

            while (true) {
                System.out.println("请输入一个合法的Email地址：");
                String email = scanner.next();
                // 判断是否包含@这个符号
                if (email.contains("@")) {
                    // 调用方法
                    String result = (String) method.invoke(object, email);
                    System.out.println("帐户名：" + result);
                    break;
                } else {
                    System.out.println("输入的Email地址不合法，请重新输入！");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
